In many areas of technology a random number generator that produces a uniform and uncorrelated output is desirable. For example, it is beneficial to use a uniform and uncorrelated random number generator to determine the delay period in an Ethernet collision detection and/or avoidance protocol. A uniform and uncorrelated random number generator output, in this case, will help to prevent Ethernet devices from preferentially transmitting before any other and avoid deadlock situations where Ethernet devices repeatedly pick identical delays.
Random number generators are typically based either on physical phenomenon or on a computational procedure. Physical phenomenon, such as white noise, radioactive decay, and thermal noise can be used to generate a random number, however, these types of random number generators can be prohibitively difficult to implement in some applications and can be subject to physical interferences (e.g., random transmission signals in the air). Computationally-based random number generators can be more easily implemented in a variety of applications, but usually lack uniformity or have undesirable correlation characteristics (e.g., high correlation). For example, although a pseudo-random number generator can produce a uniform output series, the series is a set of state values that is repeatedly produced by the pseudo-random number generator and, thus, highly correlated.
Accordingly, a need exists for improved methods and apparatus for producing a computationally-based random number.